<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="networkservices_v1.html">Network Services API</a> . <a href="networkservices_v1.projects.html">projects</a> . <a href="networkservices_v1.projects.locations.html">locations</a> . <a href="networkservices_v1.projects.locations.tcpRoutes.html">tcpRoutes</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, tcpRouteId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a new TcpRoute in a given project and location.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a single TcpRoute.</p>
<p class="toc_element">
  <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets details of a single TcpRoute.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, returnPartialSuccess=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists TcpRoute in a given project and location.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(name, body=None, updateMask=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the parameters of a single TcpRoute.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, tcpRouteId=None, x__xgafv=None)</code>
  <pre>Creates a new TcpRoute in a given project and location.

Args:
  parent: string, Required. The parent resource of the TcpRoute. Must be in the format `projects/*/locations/global`. (required)
  body: object, The request body.
    The object takes the form of:

{ # TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A free-text description of the resource. Max length 1024 characters.
  &quot;gateways&quot;: [ # Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
    &quot;A String&quot;,
  ],
  &quot;labels&quot;: { # Optional. Set of label tags associated with the TcpRoute resource.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;meshes&quot;: [ # Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR
    &quot;A String&quot;,
  ],
  &quot;name&quot;: &quot;A String&quot;, # Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name&gt;`.
  &quot;rules&quot;: [ # Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.
    { # Specifies how to match traffic and how to route traffic when traffic is matched.
      &quot;action&quot;: { # The specifications for routing traffic and applying associated policies. # Required. The detailed rule defining how to route matched traffic.
        &quot;destinations&quot;: [ # Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set.
          { # Describe the destination for traffic to be routed to.
            &quot;serviceName&quot;: &quot;A String&quot;, # Required. The URL of a BackendService to route traffic to.
            &quot;weight&quot;: 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
          },
        ],
        &quot;idleTimeout&quot;: &quot;A String&quot;, # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
        &quot;originalDestination&quot;: True or False, # Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set.
      },
      &quot;matches&quot;: [ # Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
        { # RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
          &quot;address&quot;: &quot;A String&quot;, # Required. Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: &quot;10.0.0.1&quot; - matches against this exact IP address. &quot;10.0.0.0/8&quot; - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. &quot;0.0.0.0/0&quot; - matches against any IP address&#x27;.
          &quot;port&quot;: &quot;A String&quot;, # Required. Specifies the destination port to match against.
        },
      ],
    },
  ],
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL of this resource
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
}

  tcpRouteId: string, Required. Short name of the TcpRoute resource to be created.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, x__xgafv=None)</code>
  <pre>Deletes a single TcpRoute.

Args:
  name: string, Required. A name of the TcpRoute to delete. Must be in the format `projects/*/locations/global/tcpRoutes/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, x__xgafv=None)</code>
  <pre>Gets details of a single TcpRoute.

Args:
  name: string, Required. A name of the TcpRoute to get. Must be in the format `projects/*/locations/global/tcpRoutes/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A free-text description of the resource. Max length 1024 characters.
  &quot;gateways&quot;: [ # Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
    &quot;A String&quot;,
  ],
  &quot;labels&quot;: { # Optional. Set of label tags associated with the TcpRoute resource.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;meshes&quot;: [ # Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR
    &quot;A String&quot;,
  ],
  &quot;name&quot;: &quot;A String&quot;, # Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name&gt;`.
  &quot;rules&quot;: [ # Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.
    { # Specifies how to match traffic and how to route traffic when traffic is matched.
      &quot;action&quot;: { # The specifications for routing traffic and applying associated policies. # Required. The detailed rule defining how to route matched traffic.
        &quot;destinations&quot;: [ # Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set.
          { # Describe the destination for traffic to be routed to.
            &quot;serviceName&quot;: &quot;A String&quot;, # Required. The URL of a BackendService to route traffic to.
            &quot;weight&quot;: 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
          },
        ],
        &quot;idleTimeout&quot;: &quot;A String&quot;, # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
        &quot;originalDestination&quot;: True or False, # Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set.
      },
      &quot;matches&quot;: [ # Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
        { # RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
          &quot;address&quot;: &quot;A String&quot;, # Required. Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: &quot;10.0.0.1&quot; - matches against this exact IP address. &quot;10.0.0.0/8&quot; - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. &quot;0.0.0.0/0&quot; - matches against any IP address&#x27;.
          &quot;port&quot;: &quot;A String&quot;, # Required. Specifies the destination port to match against.
        },
      ],
    },
  ],
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL of this resource
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, returnPartialSuccess=None, x__xgafv=None)</code>
  <pre>Lists TcpRoute in a given project and location.

Args:
  parent: string, Required. The project and location from which the TcpRoutes should be listed, specified in the format `projects/*/locations/global`. (required)
  pageSize: integer, Maximum number of TcpRoutes to return per call.
  pageToken: string, The value returned by the last `ListTcpRoutesResponse` Indicates that this is a continuation of a prior `ListTcpRoutes` call, and that the system should return the next page of data.
  returnPartialSuccess: boolean, Optional. If true, allow partial responses for multi-regional Aggregated List requests. Otherwise if one of the locations is down or unreachable, the Aggregated List request will fail.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response returned by the ListTcpRoutes method.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.
  &quot;tcpRoutes&quot;: [ # List of TcpRoute resources.
    { # TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
      &quot;description&quot;: &quot;A String&quot;, # Optional. A free-text description of the resource. Max length 1024 characters.
      &quot;gateways&quot;: [ # Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
        &quot;A String&quot;,
      ],
      &quot;labels&quot;: { # Optional. Set of label tags associated with the TcpRoute resource.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;meshes&quot;: [ # Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR
        &quot;A String&quot;,
      ],
      &quot;name&quot;: &quot;A String&quot;, # Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name&gt;`.
      &quot;rules&quot;: [ # Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.
        { # Specifies how to match traffic and how to route traffic when traffic is matched.
          &quot;action&quot;: { # The specifications for routing traffic and applying associated policies. # Required. The detailed rule defining how to route matched traffic.
            &quot;destinations&quot;: [ # Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set.
              { # Describe the destination for traffic to be routed to.
                &quot;serviceName&quot;: &quot;A String&quot;, # Required. The URL of a BackendService to route traffic to.
                &quot;weight&quot;: 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
              },
            ],
            &quot;idleTimeout&quot;: &quot;A String&quot;, # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
            &quot;originalDestination&quot;: True or False, # Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set.
          },
          &quot;matches&quot;: [ # Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
            { # RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
              &quot;address&quot;: &quot;A String&quot;, # Required. Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: &quot;10.0.0.1&quot; - matches against this exact IP address. &quot;10.0.0.0/8&quot; - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. &quot;0.0.0.0/0&quot; - matches against any IP address&#x27;.
              &quot;port&quot;: &quot;A String&quot;, # Required. Specifies the destination port to match against.
            },
          ],
        },
      ],
      &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL of this resource
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
    },
  ],
  &quot;unreachable&quot;: [ # Unreachable resources. Populated when the request opts into return_partial_success and reading across collections e.g. when attempting to list all resources across all supported locations.
    &quot;A String&quot;,
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</code>
  <pre>Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call &#x27;execute()&#x27; on to request the next
          page. Returns None if there are no more items in the collection.
        </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(name, body=None, updateMask=None, x__xgafv=None)</code>
  <pre>Updates the parameters of a single TcpRoute.

Args:
  name: string, Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name&gt;`. (required)
  body: object, The request body.
    The object takes the form of:

{ # TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was created.
  &quot;description&quot;: &quot;A String&quot;, # Optional. A free-text description of the resource. Max length 1024 characters.
  &quot;gateways&quot;: [ # Optional. Gateways defines a list of gateways this TcpRoute is attached to, as one of the routing rules to route the requests served by the gateway. Each gateway reference should match the pattern: `projects/*/locations/global/gateways/`
    &quot;A String&quot;,
  ],
  &quot;labels&quot;: { # Optional. Set of label tags associated with the TcpRoute resource.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;meshes&quot;: [ # Optional. Meshes defines a list of meshes this TcpRoute is attached to, as one of the routing rules to route the requests served by the mesh. Each mesh reference should match the pattern: `projects/*/locations/global/meshes/` The attached Mesh should be of a type SIDECAR
    &quot;A String&quot;,
  ],
  &quot;name&quot;: &quot;A String&quot;, # Identifier. Name of the TcpRoute resource. It matches pattern `projects/*/locations/global/tcpRoutes/tcp_route_name&gt;`.
  &quot;rules&quot;: [ # Required. Rules that define how traffic is routed and handled. At least one RouteRule must be supplied. If there are multiple rules then the action taken will be the first rule to match.
    { # Specifies how to match traffic and how to route traffic when traffic is matched.
      &quot;action&quot;: { # The specifications for routing traffic and applying associated policies. # Required. The detailed rule defining how to route matched traffic.
        &quot;destinations&quot;: [ # Optional. The destination services to which traffic should be forwarded. At least one destination service is required. Only one of route destination or original destination can be set.
          { # Describe the destination for traffic to be routed to.
            &quot;serviceName&quot;: &quot;A String&quot;, # Required. The URL of a BackendService to route traffic to.
            &quot;weight&quot;: 42, # Optional. Specifies the proportion of requests forwarded to the backend referenced by the serviceName field. This is computed as: - weight/Sum(weights in this destination list). For non-zero values, there may be some epsilon from the exact proportion defined here depending on the precision an implementation supports. If only one serviceName is specified and it has a weight greater than 0, 100% of the traffic is forwarded to that backend. If weights are specified for any one service name, they need to be specified for all of them. If weights are unspecified for all services, then, traffic is distributed in equal proportions to all of them.
          },
        ],
        &quot;idleTimeout&quot;: &quot;A String&quot;, # Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
        &quot;originalDestination&quot;: True or False, # Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set.
      },
      &quot;matches&quot;: [ # Optional. RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
        { # RouteMatch defines the predicate used to match requests to a given action. Multiple match types are &quot;OR&quot;ed for evaluation. If no routeMatch field is specified, this rule will unconditionally match traffic.
          &quot;address&quot;: &quot;A String&quot;, # Required. Must be specified in the CIDR range format. A CIDR range consists of an IP Address and a prefix length to construct the subnet mask. By default, the prefix length is 32 (i.e. matches a single IP address). Only IPV4 addresses are supported. Examples: &quot;10.0.0.1&quot; - matches against this exact IP address. &quot;10.0.0.0/8&quot; - matches against any IP address within the 10.0.0.0 subnet and 255.255.255.0 mask. &quot;0.0.0.0/0&quot; - matches against any IP address&#x27;.
          &quot;port&quot;: &quot;A String&quot;, # Required. Specifies the destination port to match against.
        },
      ],
    },
  ],
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL of this resource
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the resource was updated.
}

  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the TcpRoute resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  &quot;done&quot;: True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;metadata&quot;: { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
  &quot;name&quot;: &quot;A String&quot;, # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  &quot;response&quot;: { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
  },
}</pre>
</div>

</body></html>